package cn.itcast.nems.studentrecord.service;

import cn.itcast.nems.studentrecord.dto.ClazzStudentResultDTO;
import cn.itcast.nems.studentrecord.dto.change.StudentRecordJournalInDateChangeDTO;

import java.time.LocalDate;
import java.util.List;

/**
 * 开班日期改变，学籍变更逻辑
 *
 * @author 李勇
 */
public interface StudentRecordClazzStartDateChangedService {

    /**
     * 查询开班日期变更后受影响的学员
     *
     * @param clazzId   班级ID
     * @param oldStartDate 修改前的开班日期
     * @param newStartDate 修改后的开班日期
     * @return 班级学员相关信息
     */
    ClazzStudentResultDTO findStudents(int clazzId, LocalDate oldStartDate, LocalDate newStartDate);

    /**
     * 更新学籍的入班日期
     *
     * @param studentRecords 入班时间变更的学籍
     */
    void updateStudentRecordInDates(List<StudentRecordJournalInDateChangeDTO> studentRecords);
}
